/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package Entidades;

import java.awt.Color;
import java.util.ArrayList;

/**
 *
 * @author Adriano
 */
public class No{
private String rotulo;
private int identificador;
private int coordenadaX;
private int coordenadaY;
private No predecessor=null;
private double distanciaEuristica;
private double distanciaAcumulada;
private int eFinal;
private int grau;
private ArrayList<No> adjacentes = new ArrayList<No>();
private Color cor = Color.green;

    public int geteFinal() {
        return eFinal;
    }

    public void seteFinal(int eFinal) {
        this.eFinal = eFinal;
    }

    public No(int x,int y){
        this.coordenadaX=x;
        this.coordenadaY=y;
    }
    /**
     * @return the coordenadaX
     */
    public int getCoordenadaX() {
        return coordenadaX;
    }

    /**
     * @param coordenadaX the coordenadaX to set
     */
    public void setCoordenadaX(int coordenadaX) {
        this.coordenadaX = coordenadaX;
    }

    /**
     * @return the coordenadaY
     */
    public int getCoordenadaY() {
        return coordenadaY;
    }

    /**
     * @param coordenadaY the coordenadaY to set
     */
    public void setCoordenadaY(int coordenadaY) {
        this.coordenadaY = coordenadaY;
    }

    /**
     * @return the distanciaEuristica
     */
    public double getDistanciaEuristica() {
        return distanciaEuristica;
    }

    /**
     * @param distanciaEuristica the distanciaEuristica to set
     */
    public void setDistanciaEuristica(double distanciaEuristica) {
        this.distanciaEuristica = distanciaEuristica;
    }

    /**
     * @return the distanciaAcumulada
     */
    public double getDistanciaAcumulada() {
        return distanciaAcumulada;
    }

    /**
     * @param distanciaAcumulada the distanciaAcumulada to set
     */
    public void setDistanciaAcumulada(double distanciaAcumulada) {
        this.distanciaAcumulada = distanciaAcumulada;
    }

    public double getDistanciaEstimada(){
        return this.getDistanciaAcumulada()+this.getDistanciaEuristica();
    }

    /**
     * @return the identificador
     */
    public int getIdentificador() {
        return identificador;
    }

    /**
     * @param identificador the identificador to set
     */
    public void setIdentificador(int identificador) {
        this.identificador = identificador;
    }

    /**
     * @return the rotulo
     */
    public String getRotulo() {
        return rotulo;
    }

    /**
     * @param rotulo the rotulo to set
     */
    public void setRotulo(String rotulo) {
        this.rotulo = rotulo;
    }

    /**
     * @return the predecessor
     */
    public No getPredecessor() {
        return predecessor;
    }

    /**
     * @param predecessor the predecessor to set
     */
    public void setPredecessor(No predecessor) {
        this.predecessor = predecessor;
    }
    
    @Override
    public String toString() {
        return("("+identificador+")");
    }
    
    public int getGrau(){
        return grau;
    }

    public void setGrau(int grau){
        this.grau = grau;
    }
    
    public void setAdjacente(ArrayList<No> nosAdj){
        this.adjacentes = nosAdj;
    }
    
    public ArrayList<No> getAdjacente(){
        return adjacentes;
    }
    
    public void addAdjacente(No noAdj){
        adjacentes.add(noAdj);
    }
    
    public Color getCor(){
        return cor;
    }

    public void setCor(Color cor){
        this.cor = cor;
    }
}
